/* Araujo Heiker CI. 19726991
 * Goyo Willandher CI.20666542
 * Rodriguez Rafael CI.20009872
 * Williams Roman CI.20016812 
 * Morett Gilberth CI.20929667*/

package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;
import java.util.Vector;

import vista.VentanaCliente;
import vista.VentanaConsultaCliente;
import vista.VentanaConsultaProveedor;
import vista.VentanaProveedor;
import modelo.Cliente;
import modelo.Drogueria;
import modelo.Proveedor;

public class ControladorVentanaConsultaProveedor implements ActionListener {
	
	private Drogueria drogueria;
	private VentanaConsultaProveedor ventanaConsultaProveedor;
	private VentanaProveedor ventanaProveedor;
	private ArrayList<Proveedor> proveedores;
	private Proveedor proveedor;
	
	public ControladorVentanaConsultaProveedor(Drogueria drogueria){
		ventanaConsultaProveedor = new VentanaConsultaProveedor();
		ventanaConsultaProveedor.setLocationRelativeTo(null);
		ventanaConsultaProveedor.setVisible(true);
		ventanaConsultaProveedor.agregarListener(this);
		this.drogueria = drogueria;
		this.cargarListado();
	}

	public ControladorVentanaConsultaProveedor(ArrayList<Proveedor> proveedores,Proveedor proveedor,VentanaConsultaProveedor ventanaConsultaProveedor){
		
		this.proveedores = proveedores;
		this.proveedor = proveedor;
		this.ventanaConsultaProveedor = ventanaConsultaProveedor;
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getActionCommand().equalsIgnoreCase("Incluir")) {
			clickIncluirLinea();
			ventanaConsultaProveedor.dispose();

		} else {
			if (e.getActionCommand().equalsIgnoreCase("Eliminar")) {
				if (drogueria.cantidadProveedores()==0){
					ventanaConsultaProveedor.mostrarMensaje("No existen Proveedores para eliminar!");
				}else if(ventanaConsultaProveedor.nroFilasSeleccionadas()==0){
					ventanaConsultaProveedor.mostrarMensaje("Primero Debe Seleccionar el Proveedores a eliminar");
				}else{
					clickEliminar();
				}
			}
			
		}
				if(e.getActionCommand().equalsIgnoreCase("Modificar")){
					if (drogueria.cantidadProveedores()==0){
						ventanaConsultaProveedor.mostrarMensaje("No existen Proveedor para modificar!");
					}else if(ventanaConsultaProveedor.nroFilasSeleccionadas()==0){
						ventanaConsultaProveedor.mostrarMensaje("Primero Debe Seleccionar el Proveedor a modificar");
					}else{
						String codigo = ventanaConsultaProveedor.obtenerCodigoProveedorFilaSeleccionada();
						new ControladorVentanaProveedor(drogueria, "Modificar",codigo);
						ventanaConsultaProveedor.dispose();
					}
				}
				
				
			

	}
		

	public void clickIncluirLinea() {

		try {

			ventanaConsultaProveedor.dispose();
			this.finalize();
		} catch (Throwable e1) {
			e1.printStackTrace();
		} finally {
			new ControladorVentanaProveedor(drogueria);

		}
	}

	

	public void clickEliminar() {
		
		
		String id = ventanaConsultaProveedor.obtenerCodigoProveedorFilaSeleccionada();
		ventanaConsultaProveedor.eliminarFilaSeleccionada(ventanaConsultaProveedor.getFilaSeleccionada());
		
		for(int i =0;i<drogueria.cantidadProveedores();i++)
		{
			if(id.equals(drogueria.getUnProveedor(i).getId()))
				drogueria.getUnProveedor(i).setEstatus(Proveedor.INACTIVO);
				
		}
		
	}
	

	
	public void cargarListado() {
		ArrayList<Proveedor> proveedores = drogueria.getProveedores();
		for (int i = 0; i < drogueria.cantidadProveedores(); i++) {
			Proveedor proveedor = proveedores.get(i);

			if (proveedor.getEstatus()== Proveedor.INACTIVO) {
				continue;
			}
			Vector<String> datoProveedor = new Vector<String>(5, 1);
			String id = proveedor.getId();
			String nombre = proveedor.getNombre();
			String telefono = proveedor.getTelefono();
			String correo = proveedor.getCorreo();
			String direccion = proveedor.getDireccion();
			
			datoProveedor.add(id);
			datoProveedor.add(nombre);
			datoProveedor.add(telefono);
			datoProveedor.add(correo);
			datoProveedor.add(direccion);

			ventanaConsultaProveedor.agregarFilaLinea(datoProveedor);
			
		}
		
	}
	

}
